PHP 是怎么工作的
php 是一门适用于 web 开发的动态语言,它可以说是一个用 C语言实现的包含大量组件的软件框架
虽然没必要像 Java 那样背 PHP 的八股文,但是基本的工作原理还是需要懂的,例如它是如何部署在 Nginx 上运行的?PHP 的线程策略是怎么样的?PHP 不能做哪些事情?

从上图可以看出,PHP 从下到上是可以分为 4 层:
1、Zend 引擎(核心) Zend 引擎整体用C语言实现,是 PHP 的内核部分,它负责将 PHP 代码翻译(词法、语法解析等一系列编译过程)为可执行的 opcode 操作码,并实现相应的处理方法、基本的数据结构(如 hashtable、oo)、内存分配及管理、提供相应的 API 方法供外部调用。
2、Extensions(扩展) 围绕着 Zend 引擎,Extensions 通过组件化的方式提供各种基础服务 ,我们常见的各种内置函数(例如变量操作函数、字符串操作函数等)以及标准库等都是通过 Extensions 来实现。
用户也可以根据需要实现自己的 Extension 组件以达到功能扩展、性能优化等目的
3、SAPI(服务器应用程序编程接口) SAPI 全称是 Server Application Programming Interface,译为 “服务器应用程序编程接口”。
SAPI 通过一系列钩子函数,使得 PHP 可以和外围交互数据,这是 PHP 非常优雅和成功的一个设计,通过 SAPI 成功的将 PHP 本身和上层应用解耦隔离,PHP 可以不再考虑如何针对不同应用进行兼容,而应用本身也可以针对自己的特点实现不同的处理方式。